package me.zhengjie.modules.transfer.factory.service;

import me.zhengjie.modules.transfer.factory.vo.*;
import me.zhengjie.tool.MyMap;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 *转移信息表
 */
public interface TransferInformationService {

    /**
     *非空通用校验接口
     */

     void check(MyMap map);

    /**
     * 转出通用校验接口
     */
     void transferOutCheck(String aac001,String aae140,String aae241,String aac306,String aic113);

    /**
     * 转入通用校验类接口
     * @param informationInfo
     * @param informationDetailInfos
     */
    void transferInCheck(InformationInfo informationInfo, InformationDetailInfo informationDetailInfos);

    /**
     * 组装信息表头接口
     * @param ac08s
     * @param ac51s
     * @param transferPersonInfo
     * @return
     */
    List<Ic91Info> matchPaymentAndAccount(List<MyMap> ac08s, List<MyMap> ac51s, TransferPersonInfo transferPersonInfo);

    /**
     * 根据转入信息表获取业务年度接口
     * @param aae001GroupMap
     * @param hisList
     */
    void splitHisInfromatios(Map<String, List<MyMap>> aae001GroupMap, List<Map> hisList);

    /**
     * 生成信息表基本信息接口
     * @param informationVOS
     * @param ac08s
     * @param transferPersonInfo
     * @return
     */
    Ic90Info createTransferFund(List<Ic91Info> informationVOS, List<MyMap> ac08s,TransferPersonInfo transferPersonInfo);

    /**
     * 刪除建账前台账 并备注 "包括建账前个人缴费"接口
     * @param informationVOS
     * @param aae206
     * @param transferPersonInfo
     */
    void deleteAccountBeforeAac032(List<Ic91Info> informationVOS,BigDecimal aae206,TransferPersonInfo transferPersonInfo);

     List<MyMap> convertAc51(List<Map> ac51s);


     List<MyMap> getNewAc51s(List<Map> ac51s);

     Map  packageParam(InformationInfo informationInfo,List<InformationDetailInfo> informationDetailInfos,List<InformationOtherInfo> informationOtherInfos,TransferPersonInfo transferPersonInfo,List<MyMap> funds,String aac306,String aaf200,String aaf216,String aaf217,String aae013,String aae140,String aae241,String infoKey,String detailsKey,String othersKey);

}



